{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Looking in indexes: https://mirrors.aliyun.com/pypi/simple/\n",
      "Requirement already satisfied: dashscope in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (1.18.0)\n",
      "Requirement already satisfied: vanna[chromadb,mysql] in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (0.5.0)\n",
      "Requirement already satisfied: requests in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from vanna[chromadb,mysql]) (2.31.0)\n",
      "Requirement already satisfied: tabulate in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from vanna[chromadb,mysql]) (0.9.0)\n",
      "Requirement already satisfied: plotly in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from vanna[chromadb,mysql]) (5.21.0)\n",
      "Requirement already satisfied: pandas in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from vanna[chromadb,mysql]) (2.2.2)\n",
      "Requirement already satisfied: sqlparse in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from vanna[chromadb,mysql]) (0.5.0)\n",
      "Requirement already satisfied: kaleido in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from vanna[chromadb,mysql]) (0.2.1)\n",
      "Requirement already satisfied: flask in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from vanna[chromadb,mysql]) (3.0.3)\n",
      "Requirement already satisfied: flask-sock in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from vanna[chromadb,mysql]) (0.7.0)\n",
      "Requirement already satisfied: sqlalchemy in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from vanna[chromadb,mysql]) (2.0.29)\n",
      "Requirement already satisfied: chromadb in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from vanna[chromadb,mysql]) (0.5.0)\n",
      "Requirement already satisfied: PyMySQL in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from vanna[chromadb,mysql]) (1.1.0)\n",
      "Requirement already satisfied: aiohttp in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from dashscope) (3.9.5)\n",
      "Requirement already satisfied: aiosignal>=1.1.2 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from aiohttp->dashscope) (1.3.1)\n",
      "Requirement already satisfied: attrs>=17.3.0 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from aiohttp->dashscope) (23.2.0)\n",
      "Requirement already satisfied: frozenlist>=1.1.1 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from aiohttp->dashscope) (1.4.1)\n",
      "Requirement already satisfied: multidict<7.0,>=4.5 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from aiohttp->dashscope) (6.0.5)\n",
      "Requirement already satisfied: yarl<2.0,>=1.0 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from aiohttp->dashscope) (1.9.4)\n",
      "Requirement already satisfied: async-timeout<5.0,>=4.0 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from aiohttp->dashscope) (4.0.3)\n",
      "Requirement already satisfied: build>=1.0.3 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from chromadb->vanna[chromadb,mysql]) (1.2.1)\n",
      "Requirement already satisfied: pydantic>=1.9 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from chromadb->vanna[chromadb,mysql]) (2.7.1)\n",
      "Requirement already satisfied: chroma-hnswlib==0.7.3 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from chromadb->vanna[chromadb,mysql]) (0.7.3)\n",
      "Requirement already satisfied: fastapi>=0.95.2 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from chromadb->vanna[chromadb,mysql]) (0.110.3)\n",
      "Requirement already satisfied: uvicorn>=0.18.3 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from uvicorn[standard]>=0.18.3->chromadb->vanna[chromadb,mysql]) (0.29.0)\n",
      "Requirement already satisfied: numpy>=1.22.5 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from chromadb->vanna[chromadb,mysql]) (1.26.4)\n",
      "Requirement already satisfied: posthog>=2.4.0 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from chromadb->vanna[chromadb,mysql]) (3.5.0)\n",
      "Requirement already satisfied: typing-extensions>=4.5.0 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from chromadb->vanna[chromadb,mysql]) (4.11.0)\n",
      "Requirement already satisfied: onnxruntime>=1.14.1 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from chromadb->vanna[chromadb,mysql]) (1.17.3)\n",
      "Requirement already satisfied: opentelemetry-api>=1.2.0 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from chromadb->vanna[chromadb,mysql]) (1.24.0)\n",
      "Requirement already satisfied: opentelemetry-exporter-otlp-proto-grpc>=1.2.0 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from chromadb->vanna[chromadb,mysql]) (1.24.0)\n",
      "Requirement already satisfied: opentelemetry-instrumentation-fastapi>=0.41b0 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from chromadb->vanna[chromadb,mysql]) (0.45b0)\n",
      "Requirement already satisfied: opentelemetry-sdk>=1.2.0 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from chromadb->vanna[chromadb,mysql]) (1.24.0)\n",
      "Requirement already satisfied: tokenizers>=0.13.2 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from chromadb->vanna[chromadb,mysql]) (0.19.1)\n",
      "Requirement already satisfied: pypika>=0.48.9 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from chromadb->vanna[chromadb,mysql]) (0.48.9)\n",
      "Requirement already satisfied: tqdm>=4.65.0 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from chromadb->vanna[chromadb,mysql]) (4.66.2)\n",
      "Requirement already satisfied: overrides>=7.3.1 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from chromadb->vanna[chromadb,mysql]) (7.7.0)\n",
      "Requirement already satisfied: importlib-resources in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from chromadb->vanna[chromadb,mysql]) (6.4.0)\n",
      "Requirement already satisfied: grpcio>=1.58.0 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from chromadb->vanna[chromadb,mysql]) (1.62.2)\n",
      "Requirement already satisfied: bcrypt>=4.0.1 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from chromadb->vanna[chromadb,mysql]) (4.1.2)\n",
      "Requirement already satisfied: typer>=0.9.0 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from chromadb->vanna[chromadb,mysql]) (0.12.3)\n",
      "Requirement already satisfied: kubernetes>=28.1.0 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from chromadb->vanna[chromadb,mysql]) (29.0.0)\n",
      "Requirement already satisfied: tenacity>=8.2.3 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from chromadb->vanna[chromadb,mysql]) (8.2.3)\n",
      "Requirement already satisfied: PyYAML>=6.0.0 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from chromadb->vanna[chromadb,mysql]) (6.0.1)\n",
      "Requirement already satisfied: mmh3>=4.0.1 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from chromadb->vanna[chromadb,mysql]) (4.1.0)\n",
      "Requirement already satisfied: orjson>=3.9.12 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from chromadb->vanna[chromadb,mysql]) (3.10.1)\n",
      "Requirement already satisfied: charset-normalizer<4,>=2 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from requests->vanna[chromadb,mysql]) (3.3.2)\n",
      "Requirement already satisfied: idna<4,>=2.5 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from requests->vanna[chromadb,mysql]) (3.7)\n",
      "Requirement already satisfied: urllib3<3,>=1.21.1 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from requests->vanna[chromadb,mysql]) (2.2.1)\n",
      "Requirement already satisfied: certifi>=2017.4.17 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from requests->vanna[chromadb,mysql]) (2024.2.2)\n",
      "Requirement already satisfied: Werkzeug>=3.0.0 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from flask->vanna[chromadb,mysql]) (3.0.2)\n",
      "Requirement already satisfied: Jinja2>=3.1.2 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from flask->vanna[chromadb,mysql]) (3.1.3)\n",
      "Requirement already satisfied: itsdangerous>=2.1.2 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from flask->vanna[chromadb,mysql]) (2.2.0)\n",
      "Requirement already satisfied: click>=8.1.3 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from flask->vanna[chromadb,mysql]) (8.1.7)\n",
      "Requirement already satisfied: blinker>=1.6.2 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from flask->vanna[chromadb,mysql]) (1.8.1)\n",
      "Requirement already satisfied: simple-websocket>=0.5.1 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from flask-sock->vanna[chromadb,mysql]) (1.0.0)\n",
      "Requirement already satisfied: python-dateutil>=2.8.2 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from pandas->vanna[chromadb,mysql]) (2.9.0)\n",
      "Requirement already satisfied: pytz>=2020.1 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from pandas->vanna[chromadb,mysql]) (2024.1)\n",
      "Requirement already satisfied: tzdata>=2022.7 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from pandas->vanna[chromadb,mysql]) (2024.1)\n",
      "Requirement already satisfied: packaging in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from plotly->vanna[chromadb,mysql]) (24.0)\n",
      "Requirement already satisfied: greenlet!=0.4.17 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from sqlalchemy->vanna[chromadb,mysql]) (3.0.3)\n",
      "Requirement already satisfied: pyproject_hooks in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from build>=1.0.3->chromadb->vanna[chromadb,mysql]) (1.1.0)\n",
      "Requirement already satisfied: tomli>=1.1.0 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from build>=1.0.3->chromadb->vanna[chromadb,mysql]) (2.0.1)\n",
      "Requirement already satisfied: starlette<0.38.0,>=0.37.2 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from fastapi>=0.95.2->chromadb->vanna[chromadb,mysql]) (0.37.2)\n",
      "Requirement already satisfied: MarkupSafe>=2.0 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from Jinja2>=3.1.2->flask->vanna[chromadb,mysql]) (2.1.5)\n",
      "Requirement already satisfied: six>=1.9.0 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from kubernetes>=28.1.0->chromadb->vanna[chromadb,mysql]) (1.16.0)\n",
      "Requirement already satisfied: google-auth>=1.0.1 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from kubernetes>=28.1.0->chromadb->vanna[chromadb,mysql]) (2.29.0)\n",
      "Requirement already satisfied: websocket-client!=0.40.0,!=0.41.*,!=0.42.*,>=0.32.0 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from kubernetes>=28.1.0->chromadb->vanna[chromadb,mysql]) (1.8.0)\n",
      "Requirement already satisfied: requests-oauthlib in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from kubernetes>=28.1.0->chromadb->vanna[chromadb,mysql]) (2.0.0)\n",
      "Requirement already satisfied: oauthlib>=3.2.2 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from kubernetes>=28.1.0->chromadb->vanna[chromadb,mysql]) (3.2.2)\n",
      "Requirement already satisfied: coloredlogs in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from onnxruntime>=1.14.1->chromadb->vanna[chromadb,mysql]) (15.0.1)\n",
      "Requirement already satisfied: flatbuffers in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from onnxruntime>=1.14.1->chromadb->vanna[chromadb,mysql]) (24.3.25)\n",
      "Requirement already satisfied: protobuf in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from onnxruntime>=1.14.1->chromadb->vanna[chromadb,mysql]) (4.25.3)\n",
      "Requirement already satisfied: sympy in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from onnxruntime>=1.14.1->chromadb->vanna[chromadb,mysql]) (1.12)\n",
      "Requirement already satisfied: deprecated>=1.2.6 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from opentelemetry-api>=1.2.0->chromadb->vanna[chromadb,mysql]) (1.2.14)\n",
      "Requirement already satisfied: importlib-metadata<=7.0,>=6.0 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from opentelemetry-api>=1.2.0->chromadb->vanna[chromadb,mysql]) (7.0.0)\n",
      "Requirement already satisfied: googleapis-common-protos~=1.52 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from opentelemetry-exporter-otlp-proto-grpc>=1.2.0->chromadb->vanna[chromadb,mysql]) (1.63.0)\n",
      "Requirement already satisfied: opentelemetry-exporter-otlp-proto-common==1.24.0 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from opentelemetry-exporter-otlp-proto-grpc>=1.2.0->chromadb->vanna[chromadb,mysql]) (1.24.0)\n",
      "Requirement already satisfied: opentelemetry-proto==1.24.0 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from opentelemetry-exporter-otlp-proto-grpc>=1.2.0->chromadb->vanna[chromadb,mysql]) (1.24.0)\n",
      "Requirement already satisfied: opentelemetry-instrumentation-asgi==0.45b0 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from opentelemetry-instrumentation-fastapi>=0.41b0->chromadb->vanna[chromadb,mysql]) (0.45b0)\n",
      "Requirement already satisfied: opentelemetry-instrumentation==0.45b0 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from opentelemetry-instrumentation-fastapi>=0.41b0->chromadb->vanna[chromadb,mysql]) (0.45b0)\n",
      "Requirement already satisfied: opentelemetry-semantic-conventions==0.45b0 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from opentelemetry-instrumentation-fastapi>=0.41b0->chromadb->vanna[chromadb,mysql]) (0.45b0)\n",
      "Requirement already satisfied: opentelemetry-util-http==0.45b0 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from opentelemetry-instrumentation-fastapi>=0.41b0->chromadb->vanna[chromadb,mysql]) (0.45b0)\n",
      "Requirement already satisfied: setuptools>=16.0 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from opentelemetry-instrumentation==0.45b0->opentelemetry-instrumentation-fastapi>=0.41b0->chromadb->vanna[chromadb,mysql]) (68.2.2)\n",
      "Requirement already satisfied: wrapt<2.0.0,>=1.0.0 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from opentelemetry-instrumentation==0.45b0->opentelemetry-instrumentation-fastapi>=0.41b0->chromadb->vanna[chromadb,mysql]) (1.16.0)\n",
      "Requirement already satisfied: asgiref~=3.0 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from opentelemetry-instrumentation-asgi==0.45b0->opentelemetry-instrumentation-fastapi>=0.41b0->chromadb->vanna[chromadb,mysql]) (3.8.1)\n",
      "Requirement already satisfied: monotonic>=1.5 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from posthog>=2.4.0->chromadb->vanna[chromadb,mysql]) (1.6)\n",
      "Requirement already satisfied: backoff>=1.10.0 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from posthog>=2.4.0->chromadb->vanna[chromadb,mysql]) (2.2.1)\n",
      "Requirement already satisfied: annotated-types>=0.4.0 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from pydantic>=1.9->chromadb->vanna[chromadb,mysql]) (0.6.0)\n",
      "Requirement already satisfied: pydantic-core==2.18.2 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from pydantic>=1.9->chromadb->vanna[chromadb,mysql]) (2.18.2)\n",
      "Requirement already satisfied: wsproto in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from simple-websocket>=0.5.1->flask-sock->vanna[chromadb,mysql]) (1.2.0)\n",
      "Requirement already satisfied: huggingface-hub<1.0,>=0.16.4 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from tokenizers>=0.13.2->chromadb->vanna[chromadb,mysql]) (0.22.2)\n",
      "Requirement already satisfied: shellingham>=1.3.0 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from typer>=0.9.0->chromadb->vanna[chromadb,mysql]) (1.5.4)\n",
      "Requirement already satisfied: rich>=10.11.0 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from typer>=0.9.0->chromadb->vanna[chromadb,mysql]) (13.7.1)\n",
      "Requirement already satisfied: h11>=0.8 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from uvicorn>=0.18.3->uvicorn[standard]>=0.18.3->chromadb->vanna[chromadb,mysql]) (0.14.0)\n",
      "Requirement already satisfied: httptools>=0.5.0 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from uvicorn[standard]>=0.18.3->chromadb->vanna[chromadb,mysql]) (0.6.1)\n",
      "Requirement already satisfied: python-dotenv>=0.13 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from uvicorn[standard]>=0.18.3->chromadb->vanna[chromadb,mysql]) (1.0.1)\n",
      "Requirement already satisfied: uvloop!=0.15.0,!=0.15.1,>=0.14.0 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from uvicorn[standard]>=0.18.3->chromadb->vanna[chromadb,mysql]) (0.19.0)\n",
      "Requirement already satisfied: watchfiles>=0.13 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from uvicorn[standard]>=0.18.3->chromadb->vanna[chromadb,mysql]) (0.21.0)\n",
      "Requirement already satisfied: websockets>=10.4 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from uvicorn[standard]>=0.18.3->chromadb->vanna[chromadb,mysql]) (12.0)\n",
      "Requirement already satisfied: cachetools<6.0,>=2.0.0 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from google-auth>=1.0.1->kubernetes>=28.1.0->chromadb->vanna[chromadb,mysql]) (5.3.3)\n",
      "Requirement already satisfied: pyasn1-modules>=0.2.1 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from google-auth>=1.0.1->kubernetes>=28.1.0->chromadb->vanna[chromadb,mysql]) (0.4.0)\n",
      "Requirement already satisfied: rsa<5,>=3.1.4 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from google-auth>=1.0.1->kubernetes>=28.1.0->chromadb->vanna[chromadb,mysql]) (4.9)\n",
      "Requirement already satisfied: filelock in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from huggingface-hub<1.0,>=0.16.4->tokenizers>=0.13.2->chromadb->vanna[chromadb,mysql]) (3.14.0)\n",
      "Requirement already satisfied: fsspec>=2023.5.0 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from huggingface-hub<1.0,>=0.16.4->tokenizers>=0.13.2->chromadb->vanna[chromadb,mysql]) (2024.3.1)\n",
      "Requirement already satisfied: zipp>=0.5 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from importlib-metadata<=7.0,>=6.0->opentelemetry-api>=1.2.0->chromadb->vanna[chromadb,mysql]) (3.17.0)\n",
      "Requirement already satisfied: markdown-it-py>=2.2.0 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from rich>=10.11.0->typer>=0.9.0->chromadb->vanna[chromadb,mysql]) (3.0.0)\n",
      "Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from rich>=10.11.0->typer>=0.9.0->chromadb->vanna[chromadb,mysql]) (2.17.2)\n",
      "Requirement already satisfied: anyio<5,>=3.4.0 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from starlette<0.38.0,>=0.37.2->fastapi>=0.95.2->chromadb->vanna[chromadb,mysql]) (4.3.0)\n",
      "Requirement already satisfied: humanfriendly>=9.1 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from coloredlogs->onnxruntime>=1.14.1->chromadb->vanna[chromadb,mysql]) (10.0)\n",
      "Requirement already satisfied: mpmath>=0.19 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from sympy->onnxruntime>=1.14.1->chromadb->vanna[chromadb,mysql]) (1.3.0)\n",
      "Requirement already satisfied: sniffio>=1.1 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from anyio<5,>=3.4.0->starlette<0.38.0,>=0.37.2->fastapi>=0.95.2->chromadb->vanna[chromadb,mysql]) (1.3.1)\n",
      "Requirement already satisfied: exceptiongroup>=1.0.2 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from anyio<5,>=3.4.0->starlette<0.38.0,>=0.37.2->fastapi>=0.95.2->chromadb->vanna[chromadb,mysql]) (1.2.0)\n",
      "Requirement already satisfied: mdurl~=0.1 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from markdown-it-py>=2.2.0->rich>=10.11.0->typer>=0.9.0->chromadb->vanna[chromadb,mysql]) (0.1.2)\n",
      "Requirement already satisfied: pyasn1<0.7.0,>=0.4.6 in /home/owenliang/.conda/envs/vanna/lib/python3.10/site-packages (from pyasn1-modules>=0.2.1->google-auth>=1.0.1->kubernetes>=28.1.0->chromadb->vanna[chromadb,mysql]) (0.6.0)\n"
     ]
    }
   ],
   "source": [
    "!pip install 'vanna[chromadb,mysql]' dashscope -i https://mirrors.aliyun.com/pypi/simple/"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "from vanna.base import VannaBase\n",
    "from vanna.chromadb import ChromaDB_VectorStore\n",
    "from dashscope import Generation"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 自定义LLM\n",
    "\n",
    "https://vanna.ai/docs/mysql-other-llm-chromadb/"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "import random \n",
    "\n",
    "DEBUG_INFO=None\n",
    "\n",
    "class QwenLLM(VannaBase):\n",
    "  def __init__(self,config=None):\n",
    "    self.model=config['model']\n",
    "    self.api_key=config['api_key']\n",
    "  \n",
    "  def system_message(self,message: str):\n",
    "    return {'role':'system','content':message}\n",
    "\n",
    "  def user_message(self, message: str):\n",
    "    return {'role':'user','content':message}\n",
    "\n",
    "  def assistant_message(self, message: str):\n",
    "    return {'role':'assistant','content':message}\n",
    "  \n",
    "  def submit_prompt(self,prompt,**kwargs):\n",
    "    resp=Generation.call(\n",
    "      model=self.model,\n",
    "      messages=prompt,\n",
    "      seed=random.randint(1, 10000),\n",
    "      result_format='message',\n",
    "      api_key=self.api_key)\n",
    "    answer=resp.output.choices[0].message.content\n",
    "    global DEBUG_INFO\n",
    "    DEBUG_INFO=(prompt,answer)\n",
    "    return answer"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Vanna客户端"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "class MyVanna(ChromaDB_VectorStore,QwenLLM):\n",
    "    def __init__(self, config=None):\n",
    "        ChromaDB_VectorStore.__init__(self,config=config)\n",
    "        QwenLLM.__init__(self,config=config)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "vn=MyVanna({'api_key':'填写你的阿里云dashscope秘钥','model':'qwen-max'})"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# MySQL服务端"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "sudo docker run -d --name mysql-vanna -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:8"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "mysql --protocol=tcp -hlocalhost -P3306 -uroot -p123456"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "CREATE TABLE IF NOT EXISTS user (\n",
    "        id INT PRIMARY KEY COMMENT '用户ID' ,\n",
    "        name VARCHAR(100) COMMENT '姓名',\n",
    "        age INT COMMENT '年龄'\n",
    "    ) COMMENT '用户信息表';\n",
    "    \n",
    "insert into user values(1,'小鱼儿',34),(2,'小悲剧',36);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 构造向量库"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "vn.connect_to_mysql(host='localhost',dbname='demo',user='root',password='123456',port=3306)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "DDL='''CREATE TABLE IF NOT EXISTS user (\n",
    "        id INT PRIMARY KEY COMMENT '用户ID' ,\n",
    "        name VARCHAR(100) COMMENT '姓名',\n",
    "        age INT COMMENT '年龄'\n",
    "    ) COMMENT '用户信息表';\n",
    "'''"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Add of existing embedding ID: ab0ac208-2f5e-50b0-9177-423427220940-ddl\n",
      "Add of existing embedding ID: ab0ac208-2f5e-50b0-9177-423427220940-ddl\n",
      "Add of existing embedding ID: ab0ac208-2f5e-50b0-9177-423427220940-ddl\n",
      "Add of existing embedding ID: ab0ac208-2f5e-50b0-9177-423427220940-ddl\n",
      "Add of existing embedding ID: ab0ac208-2f5e-50b0-9177-423427220940-ddl\n",
      "Insert of existing embedding ID: ab0ac208-2f5e-50b0-9177-423427220940-ddl\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding ddl: CREATE TABLE IF NOT EXISTS user (\n",
      "        id INT PRIMARY KEY COMMENT '用户ID' ,\n",
      "        name VARCHAR(100) COMMENT '姓名',\n",
      "        age INT COMMENT '年龄'\n",
      "    ) COMMENT '用户信息表';\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "'ab0ac208-2f5e-50b0-9177-423427220940-ddl'"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 存储DDL到向量库\n",
    "vn.train(ddl=DDL)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding documentation....\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Add of existing embedding ID: 8fc54ebe-8bb3-5fb7-88a6-5c98d817ed07-doc\n",
      "Add of existing embedding ID: 8fc54ebe-8bb3-5fb7-88a6-5c98d817ed07-doc\n",
      "Add of existing embedding ID: 8fc54ebe-8bb3-5fb7-88a6-5c98d817ed07-doc\n",
      "Add of existing embedding ID: 8fc54ebe-8bb3-5fb7-88a6-5c98d817ed07-doc\n",
      "Insert of existing embedding ID: 8fc54ebe-8bb3-5fb7-88a6-5c98d817ed07-doc\n",
      "Add of existing embedding ID: 8fc54ebe-8bb3-5fb7-88a6-5c98d817ed07-doc\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "'8fc54ebe-8bb3-5fb7-88a6-5c98d817ed07-doc'"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 存储document到向量库\n",
    "vn.train(documentation='\"福报\"是指age>=35岁，也就是可以向社会输送的人才')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Add of existing embedding ID: 9ccf7bcd-5091-5b97-bf72-af9d41e526a5-sql\n",
      "Add of existing embedding ID: e5102160-2dbf-5300-98f5-24d762a12b59-sql\n",
      "Add of existing embedding ID: 9ccf7bcd-5091-5b97-bf72-af9d41e526a5-sql\n",
      "Add of existing embedding ID: e5102160-2dbf-5300-98f5-24d762a12b59-sql\n",
      "Add of existing embedding ID: eb6bbff7-a89c-51bc-a58d-ebf6dc181ae3-sql\n",
      "Add of existing embedding ID: 9ccf7bcd-5091-5b97-bf72-af9d41e526a5-sql\n",
      "Add of existing embedding ID: e5102160-2dbf-5300-98f5-24d762a12b59-sql\n",
      "Add of existing embedding ID: eb6bbff7-a89c-51bc-a58d-ebf6dc181ae3-sql\n",
      "Add of existing embedding ID: 9ccf7bcd-5091-5b97-bf72-af9d41e526a5-sql\n",
      "Add of existing embedding ID: e5102160-2dbf-5300-98f5-24d762a12b59-sql\n",
      "Add of existing embedding ID: eb6bbff7-a89c-51bc-a58d-ebf6dc181ae3-sql\n",
      "Add of existing embedding ID: 54db6ffd-201b-59a2-8568-cd05d82db461-sql\n",
      "Insert of existing embedding ID: 9ccf7bcd-5091-5b97-bf72-af9d41e526a5-sql\n",
      "Add of existing embedding ID: 9ccf7bcd-5091-5b97-bf72-af9d41e526a5-sql\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Question generated with sql: What are the names of users whose age is between 10 and 20? \n",
      "Adding SQL...\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "'9ccf7bcd-5091-5b97-bf72-af9d41e526a5-sql'"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 存储SQL到向量库\n",
    "'''\n",
    "1，通过LLM根据SQL构造一个question\n",
    "2，按question-SQL的JSON入库\n",
    "            {\n",
    "                \"question\": question,\n",
    "                \"sql\": sql,\n",
    "            }\n",
    "'''\n",
    "\n",
    "vn.train(sql='select name from user where age between 10 and 20')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "PROMPT: The user will give you SQL and you will try to guess what the business question this query is answering. Return just the question without any additional explanation. Do not reference the table name in the question.\n",
      "ANSWER: What are the names of users whose age is between 10 and 20?\n"
     ]
    }
   ],
   "source": [
    "Q,A=DEBUG_INFO\n",
    "print('PROMPT:',Q[0]['content'])\n",
    "print('ANSWER:',A)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Insert of existing embedding ID: e5102160-2dbf-5300-98f5-24d762a12b59-sql\n",
      "Add of existing embedding ID: e5102160-2dbf-5300-98f5-24d762a12b59-sql\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "'e5102160-2dbf-5300-98f5-24d762a12b59-sql'"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 存储question-SQL到向量库\n",
    "'''\n",
    "按question-SQL的JSON入库\n",
    "            {\n",
    "                \"question\": question,\n",
    "                \"sql\": sql,\n",
    "            }\n",
    "'''\n",
    "vn.train(question='小鱼儿的年龄',sql='select age from user where name=\"小鱼儿\"')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>question</th>\n",
       "      <th>content</th>\n",
       "      <th>training_data_type</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>54db6ffd-201b-59a2-8568-cd05d82db461-sql</td>\n",
       "      <td>打算给一批员工送福报，把他们的名字过滤出来</td>\n",
       "      <td>select name from user where age &gt;= 35</td>\n",
       "      <td>sql</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>9ccf7bcd-5091-5b97-bf72-af9d41e526a5-sql</td>\n",
       "      <td>What are the names of users whose age is betwe...</td>\n",
       "      <td>select name from user where age between 10 and 20</td>\n",
       "      <td>sql</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>e5102160-2dbf-5300-98f5-24d762a12b59-sql</td>\n",
       "      <td>小鱼儿的年龄</td>\n",
       "      <td>select age from user where name=\"小鱼儿\"</td>\n",
       "      <td>sql</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>eb6bbff7-a89c-51bc-a58d-ebf6dc181ae3-sql</td>\n",
       "      <td>用户的平均年龄</td>\n",
       "      <td>select avg(age) from user</td>\n",
       "      <td>sql</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>ab0ac208-2f5e-50b0-9177-423427220940-ddl</td>\n",
       "      <td>None</td>\n",
       "      <td>CREATE TABLE IF NOT EXISTS user (\\n        id ...</td>\n",
       "      <td>ddl</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>8fc54ebe-8bb3-5fb7-88a6-5c98d817ed07-doc</td>\n",
       "      <td>None</td>\n",
       "      <td>\"福报\"是指age&gt;=35岁，也就是可以向社会输送的人才</td>\n",
       "      <td>documentation</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                         id  \\\n",
       "0  54db6ffd-201b-59a2-8568-cd05d82db461-sql   \n",
       "1  9ccf7bcd-5091-5b97-bf72-af9d41e526a5-sql   \n",
       "2  e5102160-2dbf-5300-98f5-24d762a12b59-sql   \n",
       "3  eb6bbff7-a89c-51bc-a58d-ebf6dc181ae3-sql   \n",
       "0  ab0ac208-2f5e-50b0-9177-423427220940-ddl   \n",
       "0  8fc54ebe-8bb3-5fb7-88a6-5c98d817ed07-doc   \n",
       "\n",
       "                                            question  \\\n",
       "0                              打算给一批员工送福报，把他们的名字过滤出来   \n",
       "1  What are the names of users whose age is betwe...   \n",
       "2                                             小鱼儿的年龄   \n",
       "3                                            用户的平均年龄   \n",
       "0                                               None   \n",
       "0                                               None   \n",
       "\n",
       "                                             content training_data_type  \n",
       "0              select name from user where age >= 35                sql  \n",
       "1  select name from user where age between 10 and 20                sql  \n",
       "2              select age from user where name=\"小鱼儿\"                sql  \n",
       "3                          select avg(age) from user                sql  \n",
       "0  CREATE TABLE IF NOT EXISTS user (\\n        id ...                ddl  \n",
       "0                       \"福报\"是指age>=35岁，也就是可以向社会输送的人才      documentation  "
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 检查所有入库的知识\n",
    "vn.get_training_data()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 开始查询"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Number of requested results 10 is greater than number of elements in index 4, updating n_results = 4\n",
      "Number of requested results 10 is greater than number of elements in index 1, updating n_results = 1\n",
      "Number of requested results 10 is greater than number of elements in index 1, updating n_results = 1\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[{'role': 'system', 'content': 'You are a SQL expert. \\n===Tables \\nCREATE TABLE IF NOT EXISTS user (\\n        id INT PRIMARY KEY COMMENT \\'用户ID\\' ,\\n        name VARCHAR(100) COMMENT \\'姓名\\',\\n        age INT COMMENT \\'年龄\\'\\n    ) COMMENT \\'用户信息表\\';\\n\\n\\n\\n===Additional Context \\n\\n\"福报\"是指age>=35岁，也就是可以向社会输送的人才\\n\\n===Response Guidelines \\n1. If the provided context is sufficient, please generate a valid SQL query without any explanations for the question. \\n2. If the provided context is almost sufficient but requires knowledge of a specific string in a particular column, please generate an intermediate SQL query to find the distinct strings in that column. Prepend the query with a comment saying intermediate_sql \\n3. If the provided context is insufficient, please explain why it can\\'t be generated. \\n4. Please use the most relevant table(s). \\n5. If the question has been asked and answered before, please repeat the answer exactly as it was given before. \\n'}, {'role': 'user', 'content': '用户的平均年龄'}, {'role': 'assistant', 'content': 'select avg(age) from user'}, {'role': 'user', 'content': '打算给一批员工送福报，把他们的名字过滤出来'}, {'role': 'assistant', 'content': 'select name from user where age >= 35'}, {'role': 'user', 'content': '小鱼儿的年龄'}, {'role': 'assistant', 'content': 'select age from user where name=\"小鱼儿\"'}, {'role': 'user', 'content': 'What are the names of users whose age is between 10 and 20?'}, {'role': 'assistant', 'content': 'select name from user where age between 10 and 20'}, {'role': 'user', 'content': '用户的平均年龄'}]\n",
      "select avg(age) from user\n",
      "SQL: select avg(age) from user\n",
      "PROMPT: You are a SQL expert. \n",
      "===Tables \n",
      "CREATE TABLE IF NOT EXISTS user (\n",
      "        id INT PRIMARY KEY COMMENT '用户ID' ,\n",
      "        name VARCHAR(100) COMMENT '姓名',\n",
      "        age INT COMMENT '年龄'\n",
      "    ) COMMENT '用户信息表';\n",
      "\n",
      "\n",
      "\n",
      "===Additional Context \n",
      "\n",
      "\"福报\"是指age>=35岁，也就是可以向社会输送的人才\n",
      "\n",
      "===Response Guidelines \n",
      "1. If the provided context is sufficient, please generate a valid SQL query without any explanations for the question. \n",
      "2. If the provided context is almost sufficient but requires knowledge of a specific string in a particular column, please generate an intermediate SQL query to find the distinct strings in that column. Prepend the query with a comment saying intermediate_sql \n",
      "3. If the provided context is insufficient, please explain why it can't be generated. \n",
      "4. Please use the most relevant table(s). \n",
      "5. If the question has been asked and answered before, please repeat the answer exactly as it was given before. \n",
      "\n",
      "ANSWER: select avg(age) from user\n"
     ]
    }
   ],
   "source": [
    "# 基本使用\n",
    "result=vn.generate_sql('用户的平均年龄')\n",
    "print('SQL:',result)\n",
    "\n",
    "Q,A=DEBUG_INFO\n",
    "print('PROMPT:',Q[0]['content'])\n",
    "print('ANSWER:',A)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Number of requested results 10 is greater than number of elements in index 4, updating n_results = 4\n",
      "Number of requested results 10 is greater than number of elements in index 1, updating n_results = 1\n",
      "Number of requested results 10 is greater than number of elements in index 1, updating n_results = 1\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[{'role': 'system', 'content': 'You are a SQL expert. \\n===Tables \\nCREATE TABLE IF NOT EXISTS user (\\n        id INT PRIMARY KEY COMMENT \\'用户ID\\' ,\\n        name VARCHAR(100) COMMENT \\'姓名\\',\\n        age INT COMMENT \\'年龄\\'\\n    ) COMMENT \\'用户信息表\\';\\n\\n\\n\\n===Additional Context \\n\\n\"福报\"是指age>=35岁，也就是可以向社会输送的人才\\n\\n===Response Guidelines \\n1. If the provided context is sufficient, please generate a valid SQL query without any explanations for the question. \\n2. If the provided context is almost sufficient but requires knowledge of a specific string in a particular column, please generate an intermediate SQL query to find the distinct strings in that column. Prepend the query with a comment saying intermediate_sql \\n3. If the provided context is insufficient, please explain why it can\\'t be generated. \\n4. Please use the most relevant table(s). \\n5. If the question has been asked and answered before, please repeat the answer exactly as it was given before. \\n'}, {'role': 'user', 'content': '用户的平均年龄'}, {'role': 'assistant', 'content': 'select avg(age) from user'}, {'role': 'user', 'content': '打算给一批员工送福报，把他们的名字过滤出来'}, {'role': 'assistant', 'content': 'select name from user where age >= 35'}, {'role': 'user', 'content': '小鱼儿的年龄'}, {'role': 'assistant', 'content': 'select age from user where name=\"小鱼儿\"'}, {'role': 'user', 'content': 'What are the names of users whose age is between 10 and 20?'}, {'role': 'assistant', 'content': 'select name from user where age between 10 and 20'}, {'role': 'user', 'content': '用户的平均年龄'}]\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Insert of existing embedding ID: eb6bbff7-a89c-51bc-a58d-ebf6dc181ae3-sql\n",
      "Add of existing embedding ID: eb6bbff7-a89c-51bc-a58d-ebf6dc181ae3-sql\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "select avg(age) from user\n",
      "select avg(age) from user\n",
      "  avg(age)\n",
      "0  35.0000\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABXgAAAPoCAYAAABkvZZOAAAgAElEQVR4XuzdCZSW9X03/N8sDMywr7IvggiKigIuiFHRqGCMmpgas2k3fZsmJH3amLbGt31q7dMYm7b0SRvN2zamSY2JSYyJokYRFXEBVFwAQUQUQdkZGAaY7T1zq6kLyoBz33Nf9//DORxUrvv6/76f39XTc77nzjVlvXv3bgm/CBAgQIAAAQIECBAgQIAAAQIECBAgQCBzAmUK3sztzMAECBAgQIAAAQIECBAgQIAAAQIECBDICSh4PQgECBAgQIAAAQIECBAgQIAAAQIECBDIqICCN6OLMzYBAgQIECBAgAABAgQIECBAgAABAgQUvJ4BAgQIECBAgAABAgQIECBAgAABAgQIZFRAwZvRxRmbAAECBAgQIECAAAECBAgQIECAAAECCl7PAAECBAgQIECAAAECBAgQIECAAAECBDIqoODN6OKMTYAAAQIECBAgQIAAAQIECBAgQIAAAQWvZ4AAAQIECBAgQIAAAQIECBAgQIAAAQIZFVDwZnRxxiZAgAABAgQIECBAgAABAgQIECBAgICC1zNAgAABAgQIECBAgAABAgQIECBAgACBjAooeDO6OGMTIECAAAECBAgQIECAAAECBAgQIEBAwesZIECAAAECBAgQIECAAAECBAgQIECAQEYFFLwZXZyxCRAgQIAAAQIECBAgQIAAAQIECBAgoOD1DBAgQIAAAQIECBAgQIAAAQIECBAgQCCjAgrejC7O2AQIECBAgAABAgQIECBAgAABAgQIEFDwegYIECBAgAABAgQIECBAgAABAgQIECCQUQEFb0YXZ2wCBAgQIECAAAECBAgQIECAAAECBAgoeD0DBAgQIECAAAECBAgQIECAAAECBAgQyKiAgjejizM2AQIECBAgQIAAAQIECBAgQIAAAQIEFLyeAQIECBAgQIAAAQIECBAgQIAAAQIECGRUQMGb0cUZmwABAgQIECBAgAABAgQIECBAgAABAgpezwABAgQIECBAgAABAgQIECBAgAABAgQyKqDgzejijE2AAAECBAgQIECAAAECBAgQIECAAAEFr2eAAAECBAgQIECAAAECBAgQIECAAAECGRVQ8GZ0ccYmQIAAAQIECBAgQIAAAQIECBAgQICAgtczQIAAAQIECBAgQIAAAQIECBAgQIAAgYwKKHgzujhjEyBAgAABAgQIECBAgAABAgQIECBAQMHrGSBAgAABAgQIECBAgAABAgQIECBAgEBGBRS8GV2csQkQIECAAAECBAgQIECAAAECBAgQIKDg9QwQIECAAAECBAgQIECAAAECBAgQIEAgowIK3owuztgECBAgQIAAAQIECBAgQIAAAQIECBBQ8HoGCBAgQIAAAQIECBAgQIAAAQIECBAgkFEBBW9GF2dsAgQIECBAgAABAgQIECBAgAABAgQIKHg9AwQIECBAgAABAgQIECBAgAABAgQIEMiogII3o4szNgECBAgQIECAAAECBAgQIECAAAECBBS8ngECBAgQIECAAAECBAgQIECAAAECBAhkVEDBm9HFGZsAAQIECBAgQIAAAQIECBAgQIAAAQIKXs8AAQIECBAgQIAAAQIECBAgQIAAAQIEMiqg4M3o4oxNgAABAgQIECBAgAABAgQIECBAgAABBa9ngAABAgQIECBAgAABAgQIECBAgAABAhkVUPBmdHHGJkCAAAECBAgQIECAAAECBAgQIECAgILXM0CAAAECBAgQIECAAAECBAgQIECAAIGMCih4M7o4YxMgQIAAAQIECBAgQIAAAQIECBAgQEDB6xkgQIAAAQIECBAgQIAAAQIECBAgQIBARgUUvBldnLEJECBAgAABAgQIECBAgAABAgQIECCg4PUMECBAgAABAgQIECBAgAABAgQIECBAIKMCCt6MLs7YBAgQIECAAAECBAgQIECAAAECBAgQUPB6BggQIECAAAECBAgQIECAAAECBAgQIJBRAQVvRhdnbAIECBAgQIAAAQIECBAgQIAAAQIECCh4PQMECBAgQIAAAQIECBAgQIAAAQIECBDIqICCN6OLMzYBAgQIECBAgAABAgQIECBAgAABAgQUvJ4BAgQIECBAgAABAgQIECBAgAABAgQIZFRAwZvRxRmbAAECBAgQIECAAAECBAgQIECAAAECCl7PAAECBAgQIECAAAECBAgQIECAAAECBDIqoODN6OKMTYAAAQIECBAgQIAAAQIECBAgQIAAAQWvZ4AAAQIECBAgQIAAAQIECBAgQIAAAQIZFVDwZnRxxiZAgAABAgQIECBAgAABAgQIECBAgICC1zNAgAABAgQIECBAgAABAgQIECBAgACBjAooeDO6OGMTIECAAAECBAgQIECAAAECBAgQIEBAwesZIECAAAECBAgQIECAAAECBAgQIECAQEYFFLwZXZyxCRAgQIAAAQIECBAgQIAAAQIECBAgoOD1DBAgQIAAAQIECBAgQIAAAQIECBAgQCCjAgrejC7O2AQIECBAgAABAgQIECBAgAABAgQIEFDwegYIECBAgAABAgQIECBAgAABAgQIECCQUQEFb0YXZ2wCBAgQIECAAAECBAgQIECAAAECBAgoeD0DBAgQIECAAAECBAgQIECAAAECBAgQyKiAgjejizM2AQIECBAgQIAAAQIECBAgQIAAAQIEFLyeAQIECBAgQIAAAQIECBAgQIAAAQIECGRUQMGb0cUZmwABAgQIECBAgAABAgQIECBAgAABAgpezwABAgQIECBAgAABAgQIECBAgAABAgQyKqDgzejijE2AAAECBAgQIECAAAECBAgQIECAAAEFr2eAAAECBAgQIECAAAECBAgQIECAAAECGRVQ8GZ0ccYmQIAAAQIECBAgQIAAAQIECBAgQICAgtczQIAAAQIECBAgQIAAAQIECBAgQIAAgYwKKHgzujhjEyBAgAABAgQIECBAgAABAgQIECBAQMHrGSBAgAABAgQIECBAgAABAgQIECBAgEBGBRS8GV2csQkQIECAAAECBAgQIECAAAECBAgQIKDg9QwQIECAAAECBAgQIECAAAECBAgQIEAgowIK3owuztgECBAgQIAAAQIECBAgQIAAAQIECBBQ8HoGCBAgQIAAAQIECBAgQIAAAQIECBAgkFEBBW9GF2dsAgQIECBAgAABAgQIECBAgAABAgQIKHg9AwQIECBAgAABAgQIECBAgAABAgQIEMiogII3o4szNgECBAgQIECAAAECBAgQIECAAAECBBS8ngECBAgQIECAAAECBAgQIECAAAECBAhkVEDBm9HFGZsAAQIECBAgQIAAAQIECBAgQIAAAQIKXs8AAQIECBAgQIAAAQIECBAgQIAAAQIEMiqg4M3o4oxNgAABAgQIECBAgAABAgQIECBAgAABBa9ngAABAgQIECBAgAABAgQIECBAgAABAhkVUPBmdHHGJkCAAAECBAgQIECAAAECBAgQIECAgILXM0CAAAECBAgQIECAAAECBAgQIECAAIGMCih4M7o4YxMgQIAAAQIECBAgQIAAAQIECBAgQEDB6xkgQIAAAQIECBAgQIAAAQIECBAgQIBARgUUvBldnLEJECBAgAABAgQIECBAgAABAgQIECCg4PUMECBAgAABAgQIECBAgAABAgQIECBAIKMCCt6MLs7YBAgQIECAAAECBAgQIECAAAECBAgQUPB6BggQIECAAAECBAgQIECAAAECBAgQIJBRAQVvRhdnbAIECBAgQIAAAQIECBAgQIAAAQIECCh4PQMECBAgQIAAAQIECBAgQIAAAQIECBDIqICCN6OLMzYBAgQIECBAgAABAgQIECBAgAABAgQUvJ4BAgQIECBAgAABAgQIECBAgAABAgQIZFRAwZvRxRmbAAECBAgQIECAAAECBAgQIECAAAECCl7PAAECBAgQIECAAAECBAgQIECAAAECBDIqoODN6OKMTYAAAQIECBAgQIAAAQIECBAgQIAAAQWvZ4AAAQIECBAgQIAAAQIECBAgQIAAAQIZFVDwZnRxxiZAgAABAgQIECBAgAABAgQIECBAgICC1zNAgAABAgQIECBAgAABAgQIECBAgACBjAooeDO6OGMTIECAAAECBAgQIECAAAECBAgQIEBAwesZIECAAAECBAgQIECAAAECBAgQIECAQEYFFLwZXZyxCRAgQIAAAQIECBAgQIAAAQIECBAgoOD1DBAgQIAAAQIECBAgQIAAAQIECBAgQCCjAgrejC7O2AQIECBAgAABAgQIECBAgAABAgQIEFDwegYIECBAgAABAgQIECBAgAABAgQIECCQUQEFb0YXZ2wCBAgQIECAAAECBAgQIECAAAECBAgoeD0DBAgQIECAAAECBAgQIECAAAECBAgQyKiAgjejizM2AQIECBAgQIAAAQIECBAgQIAAAQIEFLyeAQIECBAgQIAAAQIECBAgQIAAAQIECGRUQMGb0cUZmwABAgQIECBAgAABAgQIECBAgAABAgpezwABAgQIECBAgAABAgQIECBAgAABAgQyKqDgzejijE2AAAECBAgQIECAAAECBAgQIECAAAEFr2eAAAECBAgQIECgQwQ6d+kfVZ17R1VVrzf+7Nw7OlX1ispO3aKysjrKy6uivKJzlJd3jorcn51y/57757f+LK968+/eurYqKiq7REVFl1ympqbd0dS4O5qb90Zz057cn01v/7Npzxv/nvtvDW/+3Vv/vjcaG+ujsWFnNOzdFnv3bH3j95v/vGf3xg5x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IEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQLLwQCPAAAEy0lEQVQECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEBAwWsHCBAgQIAAAQIECBAgQIAAAQIECBAgkFRAwZt0cGITIECAAAECBAgQIECAAAECBAgQIEDgP0cKmyglzLewAAAAAElFTkSuQmCC",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "('select avg(age) from user',\n",
       "   avg(age)\n",
       " 0  35.0000,\n",
       " None)"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "vn.ask('用户的平均年龄')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Number of requested results 10 is greater than number of elements in index 4, updating n_results = 4\n",
      "Number of requested results 10 is greater than number of elements in index 1, updating n_results = 1\n",
      "Number of requested results 10 is greater than number of elements in index 1, updating n_results = 1\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[{'role': 'system', 'content': 'You are a SQL expert. \\n===Tables \\nCREATE TABLE IF NOT EXISTS user (\\n        id INT PRIMARY KEY COMMENT \\'用户ID\\' ,\\n        name VARCHAR(100) COMMENT \\'姓名\\',\\n        age INT COMMENT \\'年龄\\'\\n    ) COMMENT \\'用户信息表\\';\\n\\n\\n\\n===Additional Context \\n\\n\"福报\"是指age>=35岁，也就是可以向社会输送的人才\\n\\n===Response Guidelines \\n1. If the provided context is sufficient, please generate a valid SQL query without any explanations for the question. \\n2. If the provided context is almost sufficient but requires knowledge of a specific string in a particular column, please generate an intermediate SQL query to find the distinct strings in that column. Prepend the query with a comment saying intermediate_sql \\n3. If the provided context is insufficient, please explain why it can\\'t be generated. \\n4. Please use the most relevant table(s). \\n5. If the question has been asked and answered before, please repeat the answer exactly as it was given before. \\n'}, {'role': 'user', 'content': '打算给一批员工送福报，把他们的名字过滤出来'}, {'role': 'assistant', 'content': 'select name from user where age >= 35'}, {'role': 'user', 'content': '小鱼儿的年龄'}, {'role': 'assistant', 'content': 'select age from user where name=\"小鱼儿\"'}, {'role': 'user', 'content': '用户的平均年龄'}, {'role': 'assistant', 'content': 'select avg(age) from user'}, {'role': 'user', 'content': 'What are the names of users whose age is between 10 and 20?'}, {'role': 'assistant', 'content': 'select name from user where age between 10 and 20'}, {'role': 'user', 'content': '打算给一批员工送福报，把他们的名字过滤出来'}]\n",
      "select name from user where age >= 35\n"
     ]
    }
   ],
   "source": [
    "result=vn.generate_sql('打算给一批员工送福报，把他们的名字过滤出来')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Number of requested results 10 is greater than number of elements in index 4, updating n_results = 4\n",
      "Number of requested results 10 is greater than number of elements in index 1, updating n_results = 1\n",
      "Number of requested results 10 is greater than number of elements in index 1, updating n_results = 1\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[{'role': 'system', 'content': 'You are a SQL expert. \\n===Tables \\nCREATE TABLE IF NOT EXISTS user (\\n        id INT PRIMARY KEY COMMENT \\'用户ID\\' ,\\n        name VARCHAR(100) COMMENT \\'姓名\\',\\n        age INT COMMENT \\'年龄\\'\\n    ) COMMENT \\'用户信息表\\';\\n\\n\\n\\n===Additional Context \\n\\n\"福报\"是指age>=35岁，也就是可以向社会输送的人才\\n\\n===Response Guidelines \\n1. If the provided context is sufficient, please generate a valid SQL query without any explanations for the question. \\n2. If the provided context is almost sufficient but requires knowledge of a specific string in a particular column, please generate an intermediate SQL query to find the distinct strings in that column. Prepend the query with a comment saying intermediate_sql \\n3. If the provided context is insufficient, please explain why it can\\'t be generated. \\n4. Please use the most relevant table(s). \\n5. If the question has been asked and answered before, please repeat the answer exactly as it was given before. \\n'}, {'role': 'user', 'content': '打算给一批员工送福报，把他们的名字过滤出来'}, {'role': 'assistant', 'content': 'select name from user where age >= 35'}, {'role': 'user', 'content': '小鱼儿的年龄'}, {'role': 'assistant', 'content': 'select age from user where name=\"小鱼儿\"'}, {'role': 'user', 'content': '用户的平均年龄'}, {'role': 'assistant', 'content': 'select avg(age) from user'}, {'role': 'user', 'content': 'What are the names of users whose age is between 10 and 20?'}, {'role': 'assistant', 'content': 'select name from user where age between 10 and 20'}, {'role': 'user', 'content': '打算给一批员工送福报，把他们的名字过滤出来'}]\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Insert of existing embedding ID: 54db6ffd-201b-59a2-8568-cd05d82db461-sql\n",
      "Add of existing embedding ID: 54db6ffd-201b-59a2-8568-cd05d82db461-sql\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "select name from user where age >= 35\n",
      "select name from user where age >= 35\n",
      "  name\n",
      "0  小悲剧\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABXgAAAPoCAYAAABkvZZOAAAgAElEQVR4XuzdB5RV5fU34D0zwNA7qKAgUgRBUVCDBbGgKGoSTTEmpsc0Y3r7x/Tee2JiiokpGmOJvSsoYAFRkSZFAUGqdIY6M9+6o/jZmXJn5r7nPrMWa2Q45333fvbLWvGX47klXbp0qQ5fBAgQIECAAAECBAgQIECAAAECBAgQIJCcQImAN7mZKZgAAQIECBAgQIAAAQIECBAgQIAAAQI1AgJeB4EAAQIECBAgQIAAAQIECBAgQIAAAQKJCgh4Ex2csgkQIECAAAECBAgQIECAAAECBAgQICDgdQYIECBAgAABAgQIECBAgAABAgQIECCQqICAN9HBKZsAAQIECBAgQIAAAQIECBAgQIAAAQICXmeAAAECBAgQIECAAAECBAgQIECAAAECiQoIeBMdnLIJECBAgAABAgQIECBAgAABAgQIECAg4HUGCBAgQIAAAQIECBAgQIAAAQIECBAgkKiAgDfRwSmbAAECBAgQIECAAAECBAgQIECAAAECAl5ngAABAgQIECBAgAABAgQIECBAgAABAokKCHgTHZyyCRAgQIAAAQIECBAgQIAAAQIECBAgIOB1BggQIECAAAECBAgQIECAAAECBAgQIJCogIA30cEpmwABAgQIECBAgAABAgQIECBAgAABAgJeZ4AAAQIECBAgQIAAAQIECBAgQIAAAQKJCgh4Ex2csgkQIECAAAECBAgQIECAAAECBAgQICDgdQYIECBAgAABAgQIECBAgAABAgQIECCQqICAN9HBKZsAAQIECBAgQIAAAQIECBAgQIAAAQICXmeAAAECBAgQIECAAAECBAgQIECAAAECiQoIeBMdnLIJECBAgAABAgQIECBAgAABAgQIECAg4HUGCBAgQIAAAQIECBAgQIAAAQIECBAgkKiAgDfRwSmbAAECBAgQIECAAAECBAgQIECAAAECAl5ngAABAgQIECBAgAABAgQIECBAgAABAokKCHgTHZyyCRAgQIAAAQIECBAgQIAAAQIECBAgIOB1BggQIECAAAECBAgQIECAAAECBAgQIJCogIA30cEpmwABAgQIECBAgAABAgQIECBAgAABAgJeZ4AAAQIECBAgQIAAAQIECBAgQIAAAQKJCgh4Ex2csgkQIECAAAECBAgQIECAAAECBAgQICDgdQYIECBAgAABAgQIECBAgAABAgQIECCQqICAN9HBKZsAAQIECBAgQIAAAQIECBAgQIAAAQICXmeAAAECBAgQIECAAAECBAgQIECAAAECiQoIeBMdnLIJECBAgAABAgQIECBAgAABAgQIECAg4HUGCBAgQIAAAQIECBAgQIAAAQIECBAgkKiAgDfRwSmbAAECBAgQIECAAAECBAgQIECAAAECAl5ngAABAgQIECBAgAABAgQIECBAgAABAokKCHgTHZyyCRAgQIAAAQIECBAgQIAAAQIECBAgIOB1BggQIECAAAECBAgQIECAAAECBAgQIJCogIA30cEpmwABAgQIECBAgAABAgQIECBAgAABAgJeZ4AAAQIECBAgQIAAAQIECBAgQIAAAQKJCgh4Ex2csgkQIECAAAECBAgQIECAAAECBAgQICDgdQYIECBAgAABAgQIECBAgAABAgQIECCQqICAN9HBKZsAAQIECBAgQIAAAQIECBAgQIAAAQICXmeAAAECBAgQIECAAAECBAgQIECAAAECiQoIeBMdnLIJECBAgAABAgQIECBAgAABAgQIECAg4HUGCBAgQIAAAQIECBAgQIAAAQIECBAgkKiAgDfRwSmbAAECBAgQIECAAAECBAgQIECAAAECAl5ngAABAgQIECBAgAABAgQIECBAgAABAokKCHgTHZyyCRAgQIAAAQIECBAgQIAAAQIECBAgIOB1BggQIECAAAECBAgQIECAAAECBAgQIJCogIA30cEpmwABAgQIECBAgAABAgQIECBAgAABAgJeZ4AAAQIECBAgQIAAAQIECBAgQIAAAQKJCgh4Ex2csgkQIECAAAECBAgQIECAAAECBAgQICDgdQYIECBAgAABAgQIECBAgAABAgQIECCQqICAN9HBKZsAAQIECBAgQIAAAQIECBAgQIAAAQICXmeAAAECBAgQIECAAAECBAgQIECAAAECiQoIeBMdnLIJECBAgAABAgQIECBAgAABAgQIECAg4HUGCBAgQIAAAQIECBAgQIAAAQIECBAgkKiAgDfRwSmbAAECBAgQIECAAAECBAgQIECAAAECAl5ngAABAgQIECBAgAABAgQIECBAgAABAokKCHgTHZyyCRAgQIAAAQIECBAgQIAAAQIECBAgIOB1BggQIECAAAECBAgQIECAAAECBAgQIJCogIA30cEpmwABAgQIECBAgAABAgQIECBAgAABAgJeZ4AAAQIECBAgQIAAAQIECBAgQIAAAQKJCgh4Ex2csgkQIECAAAECBAgQIECAAAECBAgQICDgdQYIECBAgAABAgQIECBAgAABAgQIECCQqICAN9HBKZsAAQIECBAgQIAAAQIECBAgQIAAAQICXmeAAAECBAgQIECAAAECBAgQIECAAAECiQoIeBMdnLIJECBAgAABAgQIECBAgAABAgQIECAg4HUGCBAgQIAAAQIECBAgQIAAAQIECBAgkKiAgDfRwSmbAAECBAgQIECAAAECBAgQIECAAAECAl5ngAABAgQIECBAgAABAgQIECBAgAABAokKCHgTHZyyCRAgQIAAAQIECBAgQIAAAQIECBAgIOB1BggQIECAAAECBAgQIECAAAECBAgQIJCogIA30cEpmwABAgQIECBAgAABAgQIECBAgAABAgJeZ4AAAQIECBAgQIAAAQIECBAgQIAAAQKJCgh4Ex2csgkQIECAAAECBAgQIECAAAECBAgQICDgdQYIECBAgAABAgQIECBAgAABAgQIECCQqICAN9HBKZsAAQIECBAgQIAAAQIECBAgQIAAAQICXmeAAAECBAgQIECAAAECBAgQIECAAAECiQoIeBMdnLIJECBAgAABAgQIECBAgAABAgQIECAg4HUGCBAgQIAAAQIECBAgQIAAAQIECBAgkKiAgDfRwSmbAAECBAgQIECAAAECBAgQIECAAAECAl5ngAABAgQIECBAgAABAgQIECBAgAABAokKCHgTHZyyCRAgQIAAAQIECBAgQIAAAQIECBAgIOB1BggQIECAAAECBAgQIECAAAECBAgQIJCogIA30cEpmwABAgQIECBAgAABAgQIECBAgAABAgJeZ4AAAQIECBAgQIAAAQIECBAgQIAAAQKJCgh4Ex2csgkQIECAAAECBAgQIECAAAECBAgQICDgdQYIECBAgAABAgQIECBAgAABAgQIECCQqICAN9HBKZsAAQIECBAgQIAAAQIECBAgQIAAAQICXmeAAAECBAgQIECAAAECBAgQIECAAAECiQoIeBMdnLIJECBAgAABAgQIECBAgAABAgQIECAg4HUGCBAgQIAAAQIECBAgQIAAAQIECBAgkKiAgDfRwSmbAAECBAgQIECAAAECBAgQIECAAAECAl5ngAABAgQIECBAgAABAgQIECBAgAABAokKCHgTHZyyCRAgQIAAAQIECBAgQIAAAQIECBAgIOB1BggQIECAAAECBAgQIECAAAECBAgQIJCogIA30cEpmwABAgQIECBAgAABAgQIECBAgAABAgJeZ4AAAQIECBAgQIAAAQIECBAgQIAAAQKJCgh4Ex2csgkQIECAAAECBAgQIECAAAECBAgQICDgdQYIECBAgAABAgQIECBAgAABAgQIECCQqICAN9HBKZsAAQIECBAgQIAAAQIECBAgQIAAAQICXmeAAAECBAgQIECAAAECBAgQIECAAAECiQoIeBMdnLIJECBAgAABAgQIECBAgAABAgQIECAg4HUGCBAgQIAAAQIECBAgQIAAAQIECBAgkKiAgDfRwSmbAAECBAgQIECAAAECBAgQIECAAAECAl5ngAABAgQIECBAgAABAgQIECBAgAABAokKCHgTHZyyCRAgQIAAAQIECBAgQIAAAQIECBAgIOB1BggQIECAAAECBAgQIECAAAECBAgQIJCogIA30cEpmwABAgQIECBAgAABAgQIECBAgAABAgJeZ4AAAQIECBAgQIAAAQIECBAgQIAAAQKJCgh4Ex2csgkQIECAAAECBAgQIECAAAECBAgQICDgdQYIECBAgAABAgQIECBAgAABAgQIECCQqICAN9HBKZsAAQIECBAgQIAAAQIECBAgQIAAAQICXmeAAAECBAgQIECAAAECBAgQIECAAAECiQoIeBMdnLIJECBAgAABAgQIECBAgAABAgQIECAg4HUGCBAgQIAAAQIECBAgQIAAAQIECBAgkKiAgDfRwSmbAAECBAgQIECAAAECBAgQIECAAAECAl5ngAABAgQIECBAgAABAgQIECBAgAABAokKCHgTHZyyCRAgQIAAAQIECBAgQIAAAQIECBAgIOB1BggQIECAAAECBPYoUN66R7Qq7xKtWnV+7nt552jZsnO0aNUhWrRoE6WlraK0rDxKS8ujrOZ7y5rf1/zz7u+lrZ7/s93XtoqyFq2jrKx1zf6Vlduicte2qKraEVWV22u+V774e+X2535f87Odz//Z7t/nrt0WO7dvjJ0718eO7blf62LHjue+b9+2eo89uoAAAQIECBAgQIBAigIC3hSnpmYCBAgQIECAQAMEWrfZO9q22zfK2+RC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AgQIECCQR0DBm2cXkhAgQIAAAQIECBAgQIAAAQIECBAgQKBIQMFbxGWYAAECBAgQIECAAAECBAgQIECAAAECeQQUvHl2IQkBAgQIECBAgAABAgQIECBAgAABAgSKBBS8RVyGCRAgQIAAAQIECBAgQIAAAQIECBAgkEdAwZtnF5IQIECAAAECBAgQIECAAAECBAgQIECgSEDBW8RlmAABAgQIECBAgAABAgQIECBAgAABAnkEFLx5diEJAQIECBAgQIAAAQIECBAgQIAAAQIEigQUvEVchgkQIECAAAECBAgQIECAAAECBAgQIJBHQMGbZxeSECBAgAABAgQIECBAgAABAgQIECBAoEhAwVvEZZgAAQIECBAgQIAAAQIECBAgQIAAAQJ5BBS8eXYhCQECBAgQIECAAAECBAgQIECAAAECBIoEFLxFXIYJECBAgAABAgQIECBAgAABAgQIECCQR0DBm2cXkhAgQIAAAQIECBAgQIAAAQIECBAgQKBIQMFbxGWYAAECBAgQIECAAAECBAgQIECAAAECeQQUvHl2IQkBAgQIECBAgAABAgQIECBAgAABAgSKBBS8RVyGCRAgQIAAAQIECBAgQIAAAQIECBAgkEdAwZtnF5IQIECAAAECBAgQIECAAAECBAgQIECgSEDBW8RlmAABAgQIECBAgAABAgQIECBAgAABAnkEFLx5diEJAQIECBAgQIAAAQIECBAgQIAAAQIEigQUvEVchgkQIECAAAECBAgQIECAAAECBAgQIJBHQMGbZxeSECBAgAABAgQIECBAgAABAgQIECBAoEhAwVvEZZgAAQIECBAgQIAAAQIECBAgQIAAAQJ5BBS8eXYhCQECBAgQIEBe9F+cAAANkElEQVSAAAECBAgQIECAAAECBIoEFLxFXIYJECBAgAABAgQIECBAgAABAgQIECCQR0DBm2cXkhAgQIAAAQIECBAgQIAAAQIECBAgQKBIQMFbxGWYAAECBAgQIECAAAECBAgQIECAAAECeQQUvHl2IQkBAgQIECBAgAABAgQIECBAgAABAgSKBBS8RVyGCRAgQIAAAQIECBAgQIAAAQIECBAgkEdAwZtnF5IQIECAAAECBAgQIECAAAECBAgQIECgSEDBW8RlmAABAgQIECBAgAABAgQIECBAgAABAnkEFLx5diEJAQIECBAgQIAAAQIECBAgQIAAAQIEigQUvEVchgkQIECAAAECBAgQIECAAAECBAgQIJBHQMGbZxeSECBAgAABAgQIECBAgAABAgQIECBAoEhAwVvEZZgAAQIECBAgQIAAAQIECBAgQIAAAQJ5BBS8eXYhCQECBAgQIECAAAECBAgQIECAAAECBIoEFLxFXIYJECBAgAABAgQIECBAgAABAgQIECCQR0DBm2cXkhAgQIAAAQIECBAgQIAAAQIECBAgQKBIQMFbxGWYAAECBAgQIECAAAECBAgQIECAAAECeQQUvHl2IQkBAgQIECBAgAABAgQIECBAgAABAgSKBBS8RVyGCRAgQIAAAQIECBAgQIAAAQIECBAgkEdAwZtnF5IQIECAAAECBAgQIECAAAECBAgQIECgSEDBW8RlmAABAgQIECBAgAABAgQIECBAgAABAnkEFLx5diEJAQIECBAgQIAAAQIECBAgQIAAAQIEigQUvEVchgkQIECAAAECBAgQIECAAAECBAgQIJBHQMGbZxeSECBAgAABAgQIECBAgAABAgQIECBAoEhAwVvEZZgAAQIECBAgQIAAAQIECBAgQIAAAQJ5BBS8eXYhCQECBAgQIECAAAECBAgQIECAAAECBIoEFLxFXIYJECBAgAABAgQIECBAgAABAgQIECCQR0DBm2cXkhAgQIAAAQIECBAgQIAAAQIECBAgQKBIQMFbxGWYAAECBAgQIECAAAECBAgQIECAAAECeQQUvHl2IQkBAgQIECBAgAABAgQIECBAgAABAgSKBBS8RVyGCRAgQIAAAQIECBAgQIAAAQIECBAgkEdAwZtnF5IQIECAAAECBAgQIECAAAECBAgQIECgSEDBW8RlmAABAgQIECBAgAABAgQIECBAgAABAnkEFLx5diEJAQIECBAgQIAAAQIECBAgQIAAAQIEigQUvEVchgkQIECAAAECBAgQIECAAAECBAgQIJBHQMGbZxeSECBAgAABAgQIECBAgAABAgQIECBAoEhAwVvEZZgAAQIECBAgQIAAAQIECBAgQIAAAQJ5BBS8eXYhCQECBAgQIECAAAECBAgQIECAAAECBIoEFLxFXIYJECBAgAABAgQIECBAgAABAgQIECCQR0DBm2cXkhAgQIAAAQIECBAgQIAAAQIECBAgQKBIQMFbxGWYAAECBAgQIECAAAECBAgQIECAAAECeQQUvHl2IQkBAgQIECBAgAABAgQIECBAgAABAgSKBBS8RVyGCRAgQIAAAQIECBAgQIAAAQIECBAgkEdAwZtnF5IQIECAAAECBAgQIECAAAECBAgQIECgSEDBW8RlmAABAgQIECBAgAABAgQIECBAgAABAnkEFLx5diEJAQIECBAgQIAAAQIECBAgQIAAAQIEigQUvEVchgkQIECAAAECBAgQIECAAAECBAgQIJBHQMGbZxeSECBAgAABAgQIECBAgAABAgQIECBAoEhAwVvEZZgAAQIECBAgQIAAAQIECBAgQIAAAQJ5BBS8eXYhCQECBAgQIECAAAECBAgQIECAAAECBIoEFLxFXIYJECBAgAABAgQIECBAgAABAgQIECCQR0DBm2cXkhAgQIAAAQIECBAgQIAAAQIECBAgQKBIQMFbxGWYAAECBAgQIECAAAECBAgQIECAAAECeQQUvHl2IQkBAgQIECBAgAABAgQIECBAgAABAgSKBBS8RVyGCRAgQIAAAQIECBAgQIAAAQIECBAgkEdAwZtnF5IQIECAAAECBAgQIECAAAECBAgQIECgSEDBW8RlmAABAgQIECBAgAABAgQIECBAgAABAnkEFLx5diEJAQIECBAgQIAAAQIECBAgQIAAAQIEigQUvEVchgkQIECAAAECBAgQIECAAAECBAgQIJBHQMGbZxeSECBAgAABAgQIECBAgAABAgQIECBAoEhAwVvEZZgAAQIECBAgQIAAAQIECBAgQIAAAQJ5BBS8eXYhCQECBAgQIECAAAECBAgQIECAAAECBIoEFLxFXIYJECBAgAABAgQIECBAgAABAgQIECCQR0DBm2cXkhAgQIAAAQIECBAgQIAAAQIECBAgQKBIQMFbxGWYAAECBAgQIECAAAECBAgQIECAAAECeQQUvHl2IQkBAgQIECBAgAABAgQIECBAgAABAgSKBBS8RVyGCRAgQIAAAQIECBAgQIAAAQIECBAgkEdAwZtnF5IQIECAAAECBAgQIECAAAECBAgQIECgSEDBW8RlmAABAgQIECBAgAABAgQIECBAgAABAnkEFLx5diEJAQIECBAgQIAAAQIECBAgQIAAAQIEigQUvEVchgkQIECAAAECBAgQIECAAAECBAgQIJBHQMGbZxeSECBAgAABAgQIECBAgAABAgQIECBAoEhAwVvEZZgAAQIECBAgQIAAAQIECBAgQIAAAQJ5BBS8eXYhCQECBAgQIECAAAECBAgQIECAAAECBIoEFLxFXIYJECBAgAABAgQIECBAgAABAgQIECCQR0DBm2cXkhAgQIAAAQIECBAgQIAAAQIECBAgQKBIQMFbxGWYAAECBAgQIECAAAECBAgQIECAAAECeQQUvHl2IQkBAgQIECBAgAABAgQIECBAgAABAgSKBBS8RVyGCRAgQIAAAQIECBAgQIAAAQIECBAgkEdAwZtnF5IQIECAAAECBAgQIECAAAECBAgQIECgSEDBW8RlmAABAgQIECBAgAABAgQIECBAgAABAnkEFLx5diEJAQIECBAgQIAAAQIECBAgQIAAAQIEigQUvEVchgkQIECAAAECBAgQIECAAAECBAgQIJBHQMGbZxeSECBAgAABAgQIECBAgAABAgQIECBAoEhAwVvEZZgAAQIECBAgQIAAAQIECBAgQIAAAQJ5BBS8eXYhCQECBAgQIECAAAECBAgQIECAAAECBIoEFLxFXIYJECBAgAABAgQIECBAgAABAgQIECCQR0DBm2cXkhAgQIAAAQIECBAgQIAAAQIECBAgQKBIQMFbxGWYAAECBAgQIECAAAECBAgQIECAAAECeQQUvHl2IQkBAgQIECBAgAABAgQIECBAgAABAgSKBBS8RVyGCRAgQIAAAQIECBAgQIAAAQIECBAgkEdAwZtnF5IQIECAAAECBAgQIECAAAECBAgQIECgSEDBW8RlmAABAgQIECBAgAABAgQIECBAgAABAnkEFLx5diEJAQIECBAgQIAAAQIECBAgQIAAAQIEigQUvEVchgkQIECAAAECBAgQIECAAAECBAgQIJBHQMGbZxeSECBAgAABAgQIECBAgAABAgQIECBAoEhAwVvEZZgAAQIECBAgQIAAAQIECBAgQIAAAQJ5BBS8eXYhCQECBAgQIECAAAECBAgQIECAAAECBIoEFLxFXIYJECBAgAABAgQIECBAgAABAgQIECCQR0DBm2cXkhAgQIAAAQIECBAgQIAAAQIECBAgQKBIQMFbxGWYAAECBAgQIECAAAECBAgQIECAAAECeQQUvHl2IQkBAgQIECBAgAABAgQIECBAgAABAgSKBBS8RVyGCRAgQIAAAQIECBAgQIAAAQIECBAgkEdAwZtnF5IQIECAAAECBAgQIECAAAECBAgQIECgSEDBW8RlmAABAgQIECBAgAABAgQIECBAgAABAnkEFLx5diEJAQIECBAgQIAAAQIECBAgQIAAAQIEigQUvEVchgkQIECAAAECBAgQIECAAAECBAgQIJBHQMGbZxeSECBAgAABAgQIECBAgAABAgQIECBAoEhAwVvEZZgAAQIECBAgQIAAAQIECBAgQIAAAQJ5BBS8eXYhCQECBAgQIECAAAECBAgQIECAAAECBIoEFLxFXIYJECBAgAABAgQIECBAgAABAgQIECCQR0DBm2cXkhAgQIAAAQIECBAgQIAAAQIECBAgQKBIQMFbxGWYAAECBAgQIECAAAECBAgQIECAAAECeQQUvHl2IQkBAgQIECBAgAABAgQIECBAgAABAgSKBBS8RVyGCRAgQIAAAQIECBAgQIAAAQIECBAgkEdAwZtnF5IQIECAAAECBAgQIECAAAECBAgQIECgSEDBW8RlmAABAgQIECBAgAABAgQIECBAgAABAnkEFLx5diEJAQIECBAgQIAAAQIECBAgQIAAAQIEigQUvEVchgkQIECAAAECBAgQIECAAAECBAgQIJBHQMGbZxeSECBAgAABAgQIECBAgAABAgQIECBAoEhAwVvEZZgAAQIECBAgQIAAAQIECBAgQIAAAQJ5BBS8eXYhCQECBAgQIECAAAECBAgQIECAAAECBIoE/h98sU1Vi9DX/gAAAABJRU5ErkJggg==",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "('select name from user where age >= 35',\n",
       "   name\n",
       " 0  小悲剧,\n",
       " None)"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "vn.ask('打算给一批员工送福报，把他们的名字过滤出来')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "PROMPT: The following is a pandas DataFrame that contains the results of the query that answers the question the user asked: '打算给一批员工送福报，把他们的名字过滤出来'\n",
      "\n",
      "The DataFrame was produced using this query: select name from user where age >= 35\n",
      "\n",
      "The following is information about the resulting pandas DataFrame 'df': \n",
      "Running df.dtypes gives:\n",
      " name    object\n",
      "dtype: object\n",
      "ANSWER: ```python\n",
      "import plotly.express as px\n",
      "\n",
      "if len(df) == 1:\n",
      "    fig = px.indicator(title='Employee Names', value=df['name'].iloc[0])\n",
      "else:\n",
      "    fig = px.bar(df, x='name', title='Employee Names')\n",
      "\n",
      "fig.show()\n",
      "```\n"
     ]
    }
   ],
   "source": [
    "Q,A=DEBUG_INFO\n",
    "print('PROMPT:',Q[0]['content'])\n",
    "print('ANSWER:',A)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Number of requested results 10 is greater than number of elements in index 4, updating n_results = 4\n",
      "Number of requested results 10 is greater than number of elements in index 1, updating n_results = 1\n",
      "Number of requested results 10 is greater than number of elements in index 1, updating n_results = 1\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[{'role': 'system', 'content': 'You are a SQL expert. \\n===Tables \\nCREATE TABLE IF NOT EXISTS user (\\n        id INT PRIMARY KEY COMMENT \\'用户ID\\' ,\\n        name VARCHAR(100) COMMENT \\'姓名\\',\\n        age INT COMMENT \\'年龄\\'\\n    ) COMMENT \\'用户信息表\\';\\n\\n\\n\\n===Additional Context \\n\\n\"福报\"是指age>=35岁，也就是可以向社会输送的人才\\n\\n===Response Guidelines \\n1. If the provided context is sufficient, please generate a valid SQL query without any explanations for the question. \\n2. If the provided context is almost sufficient but requires knowledge of a specific string in a particular column, please generate an intermediate SQL query to find the distinct strings in that column. Prepend the query with a comment saying intermediate_sql \\n3. If the provided context is insufficient, please explain why it can\\'t be generated. \\n4. Please use the most relevant table(s). \\n5. If the question has been asked and answered before, please repeat the answer exactly as it was given before. \\n'}, {'role': 'user', 'content': '用户的平均年龄'}, {'role': 'assistant', 'content': 'select avg(age) from user'}, {'role': 'user', 'content': '打算给一批员工送福报，把他们的名字过滤出来'}, {'role': 'assistant', 'content': 'select name from user where age >= 35'}, {'role': 'user', 'content': '小鱼儿的年龄'}, {'role': 'assistant', 'content': 'select age from user where name=\"小鱼儿\"'}, {'role': 'user', 'content': 'What are the names of users whose age is between 10 and 20?'}, {'role': 'assistant', 'content': 'select name from user where age between 10 and 20'}, {'role': 'user', 'content': '统计一下各年龄段的用户数量,年龄段是指0-10,10-20,20-30,30-40,40-50,50-60,60-70,70-80...左闭右开区间'}]\n",
      "```sql\n",
      "SELECT \n",
      "  CASE \n",
      "    WHEN age BETWEEN 0 AND 10 THEN '0-10'\n",
      "    WHEN age BETWEEN 11 AND 20 THEN '11-20'\n",
      "    WHEN age BETWEEN 21 AND 30 THEN '21-30'\n",
      "    WHEN age BETWEEN 31 AND 40 THEN '31-40'\n",
      "    WHEN age BETWEEN 41 AND 50 THEN '41-50'\n",
      "    WHEN age BETWEEN 51 AND 60 THEN '51-60'\n",
      "    WHEN age BETWEEN 61 AND 70 THEN '61-70'\n",
      "    WHEN age BETWEEN 71 AND 80 THEN '71-80'\n",
      "    ELSE '80+'\n",
      "  END AS age_group, COUNT(*) as user_count\n",
      "FROM user\n",
      "GROUP BY age_group;\n",
      "```\n",
      "SELECT \n",
      "  CASE \n",
      "    WHEN age BETWEEN 0 AND 10 THEN '0-10'\n",
      "    WHEN age BETWEEN 11 AND 20 THEN '11-20'\n",
      "    WHEN age BETWEEN 21 AND 30 THEN '21-30'\n",
      "    WHEN age BETWEEN 31 AND 40 THEN '31-40'\n",
      "    WHEN age BETWEEN 41 AND 50 THEN '41-50'\n",
      "    WHEN age BETWEEN 51 AND 60 THEN '51-60'\n",
      "    WHEN age BETWEEN 61 AND 70 THEN '61-70'\n",
      "    WHEN age BETWEEN 71 AND 80 THEN '71-80'\n",
      "    ELSE '80+'\n",
      "  END AS age_group, COUNT(*) as user_count\n",
      "FROM user\n",
      "GROUP BY age_group;\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "\"SELECT \\n  CASE \\n    WHEN age BETWEEN 0 AND 10 THEN '0-10'\\n    WHEN age BETWEEN 11 AND 20 THEN '11-20'\\n    WHEN age BETWEEN 21 AND 30 THEN '21-30'\\n    WHEN age BETWEEN 31 AND 40 THEN '31-40'\\n    WHEN age BETWEEN 41 AND 50 THEN '41-50'\\n    WHEN age BETWEEN 51 AND 60 THEN '51-60'\\n    WHEN age BETWEEN 61 AND 70 THEN '61-70'\\n    WHEN age BETWEEN 71 AND 80 THEN '71-80'\\n    ELSE '80+'\\n  END AS age_group, COUNT(*) as user_count\\nFROM user\\nGROUP BY age_group;\""
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "vn.generate_sql('统计一下各年龄段的用户数量,年龄段是指0-10,10-20,20-30,30-40,40-50,50-60,60-70,70-80...左闭右开区间')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Insert of existing embedding ID: 82e9153e-0b3b-5aca-ac66-31e65eb61d36-doc\n",
      "Add of existing embedding ID: 82e9153e-0b3b-5aca-ac66-31e65eb61d36-doc\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Number of requested results 10 is greater than number of elements in index 4, updating n_results = 4\n",
      "Number of requested results 10 is greater than number of elements in index 1, updating n_results = 1\n",
      "Number of requested results 10 is greater than number of elements in index 2, updating n_results = 2\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adding documentation....\n",
      "[{'role': 'system', 'content': 'You are a SQL expert. \\n===Tables \\nCREATE TABLE IF NOT EXISTS user (\\n        id INT PRIMARY KEY COMMENT \\'用户ID\\' ,\\n        name VARCHAR(100) COMMENT \\'姓名\\',\\n        age INT COMMENT \\'年龄\\'\\n    ) COMMENT \\'用户信息表\\';\\n\\n\\n\\n===Additional Context \\n\\n用户年龄段划分逻辑：0-10,10-20,20-30,30-40,40-50,50-60,60-70,70-80...左闭右开区间\\n\\n\"福报\"是指age>=35岁，也就是可以向社会输送的人才\\n\\n===Response Guidelines \\n1. If the provided context is sufficient, please generate a valid SQL query without any explanations for the question. \\n2. If the provided context is almost sufficient but requires knowledge of a specific string in a particular column, please generate an intermediate SQL query to find the distinct strings in that column. Prepend the query with a comment saying intermediate_sql \\n3. If the provided context is insufficient, please explain why it can\\'t be generated. \\n4. Please use the most relevant table(s). \\n5. If the question has been asked and answered before, please repeat the answer exactly as it was given before. \\n'}, {'role': 'user', 'content': '打算给一批员工送福报，把他们的名字过滤出来'}, {'role': 'assistant', 'content': 'select name from user where age >= 35'}, {'role': 'user', 'content': '用户的平均年龄'}, {'role': 'assistant', 'content': 'select avg(age) from user'}, {'role': 'user', 'content': '小鱼儿的年龄'}, {'role': 'assistant', 'content': 'select age from user where name=\"小鱼儿\"'}, {'role': 'user', 'content': 'What are the names of users whose age is between 10 and 20?'}, {'role': 'assistant', 'content': 'select name from user where age between 10 and 20'}, {'role': 'user', 'content': '统计一下各年龄段的用户数量'}]\n",
      "```sql\n",
      "SELECT \n",
      "  CASE \n",
      "    WHEN age BETWEEN 0 AND 10 THEN '0-10'\n",
      "    WHEN age BETWEEN 11 AND 20 THEN '11-20'\n",
      "    WHEN age BETWEEN 21 AND 30 THEN '21-30'\n",
      "    WHEN age BETWEEN 31 AND 40 THEN '31-40'\n",
      "    WHEN age BETWEEN 41 AND 50 THEN '41-50'\n",
      "    WHEN age BETWEEN 51 AND 60 THEN '51-60'\n",
      "    WHEN age BETWEEN 61 AND 70 THEN '61-70'\n",
      "    WHEN age BETWEEN 71 AND 80 THEN '71-80'\n",
      "    ELSE '80+'\n",
      "  END AS age_group,\n",
      "  COUNT(*) as user_count\n",
      "FROM user\n",
      "GROUP BY age_group;\n",
      "```\n",
      "SELECT \n",
      "  CASE \n",
      "    WHEN age BETWEEN 0 AND 10 THEN '0-10'\n",
      "    WHEN age BETWEEN 11 AND 20 THEN '11-20'\n",
      "    WHEN age BETWEEN 21 AND 30 THEN '21-30'\n",
      "    WHEN age BETWEEN 31 AND 40 THEN '31-40'\n",
      "    WHEN age BETWEEN 41 AND 50 THEN '41-50'\n",
      "    WHEN age BETWEEN 51 AND 60 THEN '51-60'\n",
      "    WHEN age BETWEEN 61 AND 70 THEN '61-70'\n",
      "    WHEN age BETWEEN 71 AND 80 THEN '71-80'\n",
      "    ELSE '80+'\n",
      "  END AS age_group,\n",
      "  COUNT(*) as user_count\n",
      "FROM user\n",
      "GROUP BY age_group;\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "\"SELECT \\n  CASE \\n    WHEN age BETWEEN 0 AND 10 THEN '0-10'\\n    WHEN age BETWEEN 11 AND 20 THEN '11-20'\\n    WHEN age BETWEEN 21 AND 30 THEN '21-30'\\n    WHEN age BETWEEN 31 AND 40 THEN '31-40'\\n    WHEN age BETWEEN 41 AND 50 THEN '41-50'\\n    WHEN age BETWEEN 51 AND 60 THEN '51-60'\\n    WHEN age BETWEEN 61 AND 70 THEN '61-70'\\n    WHEN age BETWEEN 71 AND 80 THEN '71-80'\\n    ELSE '80+'\\n  END AS age_group,\\n  COUNT(*) as user_count\\nFROM user\\nGROUP BY age_group;\""
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 知识沉淀后可以直接提问\n",
    "vn.train(documentation='用户年龄段划分逻辑：0-10,10-20,20-30,30-40,40-50,50-60,60-70,70-80...左闭右开区间')\n",
    "vn.generate_sql('统计一下各年龄段的用户数量')"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "vanna",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.14"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
